6.6.3. İki Yönlü Listede Arama İşlemi

Arama işlemi liste başından başlanıp sonuna kadar düğümler üzerinde dolaşılarak aranan bilginin o düğümde olup olmadığına bakılır.

Arama işleminde, yapısal bakımdan listelemeye benzer; liste başından başlanıp sonuna kadar düğümler üzerinde dolaşılarak aranan bilginin o düğümde olup olmadığına bakılır. Fonksiyon-6.9.'de arama işini kotaracak C fonksiyonu verilmiştir. Görüleceği gibi while ile kurulan döngü içerisinde bir karşılaştırma yapılmakta ve bulunursa ilgili düğümün bellek adresi gönderilmektedir. Bu fonksiyon, aranan listede birkaç tane varsa, onlar arasından önce olanını bulur.

Fonksiyon-6.9. İki Yönlü bağlantılı listede arama

/* arama yapar ve ilk bulduğu düğümün adresini gönderir */
BLISTE2 *arama(int aranan)
{
    BLISTE2 *p;

    p=ilk2;
    while(p=!NULL) {
            if(aranan== p >bilgi))
                    return p; /* bulunursa adresi gönderiliyor */
            p=p >arka; /* bir sonraki düğümün dresi */
    }
    return NULL; /* bulunamadı anlamında NULL gönderiliyor */
}